There are a number of different media and communication devices that users interact with on a daily basis. A user may input text into their smartphone, tablet notebook, desktop computer, laptop computer and any number of different computer applications using different types of input devices. The different types of input devices, or input modalities, may be a voice command, a keyboard, a mouse, or a touch, a series of touches or multi-touch gestures on a touch screen, or handwriting devices. Usually the user may only choose one of the modalities to use at a time since these modalities are typically independent from one another. None of the modalities may fulfill the user's requirement in all situations. As a result, users may need to switch among the different modalities from time to time. Some of input methods may also support additional functions such as spell correction and predictive suggestions as a user inputs text.
In addition, particular input methods usually only support one specific language or script. In order to input multilingual content, the user may need to install multiple input methods that may duplicate functionality of other installed input methods. The many different types of operating systems, and APIs associated with the multitude of different input devices makes it difficult and complex to develop an input method for multiple, different platforms.
It would be beneficial to develop a system that allows different input modalities to operate on a common input.